home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr25 / me310.zip / UE310H.ZIP / EVAR.H < prev    next >
Text File  |  1989-03-18  |  8KB  |  259 lines

  1. /*    EVAR.H: Environment and user variable definitions
  2.         for MicroEMACS
  3.  
  4.         written 1986 by Daniel Lawrence
  5. */
  6.  
  7. /*    structure to hold user variables and their definitions    */
  8.  
  9. typedef struct UVAR {
  10.     char u_name[NVSIZE + 1];           /* name of user variable */
  11.     char *u_value;                /* value (string) */
  12. } UVAR;
  13.  
  14. /*    current user variables (This structure will probably change)    */
  15.  
  16. #define MAXVARS     512
  17.  
  18. UVAR NOSHARE uv[MAXVARS + 1];    /* user variables */
  19.  
  20. /*    list of recognized environment variables    */
  21.  
  22. NOSHARE char *envars[] = {
  23.     "acount",        /* # of chars until next auto-save */
  24.     "asave",        /* # of chars between auto-saves */
  25.     "bufhook",        /* enter buffer switch hook */
  26.     "cbflags",        /* current buffer flags */
  27.     "cbufname",        /* current buffer name */
  28.     "cfname",        /* current file name */
  29.     "cmdhook",        /* command loop hook */
  30.     "cmode",        /* mode of current buffer */
  31.     "curchar",        /* current character under the cursor */
  32.     "curcol",        /* current column pos of cursor */
  33.     "curline",        /* current line in file */
  34.     "curwidth",        /* current screen width */
  35.     "cwline",        /* current screen line in window */
  36.     "debug",        /* macro debugging */
  37.     "diagflag",        /* diagonal mouse movements enabled? */
  38.     "discmd",        /* display commands on command line */
  39.     "disinp",        /* display command line input characters */
  40.     "exbhook",        /* exit buffer switch hook */
  41.     "fcol",            /* first displayed column in curent window */
  42.     "fillcol",        /* current fill column */
  43.     "flicker",        /* flicker supression */
  44.     "gflags",        /* global internal emacs flags */
  45.     "gmode",        /* global modes */
  46.     "hardtab",        /* current hard tab size */
  47.     "hjump",        /* horizontal screen jump size */
  48.     "hscroll",        /* horizontal scrolling flag */
  49.     "kill",         /* kill buffer (read only) */
  50.     "language",        /* language of text messages */
  51.     "lastkey",        /* last keyboard char struck */
  52.     "lastmesg",        /* last string mlwrite()ed */
  53.     "line",         /* text of current line */
  54.     "lwidth",        /* width of current line */
  55.     "match",        /* last matched magic pattern */
  56.     "modeflag",        /* Modelines displayed flag */
  57.     "msflag",        /* activate mouse? */
  58.     "oldcrypt",        /* use old(broken) encryption */
  59.     "pagelen",        /* number of lines used by editor */
  60.     "palette",        /* current palette string */
  61.     "pending",        /* type ahead pending flag */
  62.     "progname",        /* returns current prog name - "MicroEMACS" */
  63.     "ram",            /* ram in use by malloc */
  64.     "readhook",        /* read file execution hook */
  65.     "region",        /* current region (read only) */
  66.     "replace",        /* replacement pattern */
  67.     "rval",         /* child process return value */
  68.     "search",        /* search pattern */
  69.     "seed",         /* current random number seed */
  70.     "softtab",        /* current soft tab size */
  71.     "sres",         /* current screen resolution */
  72.     "ssave",        /* safe save flag */
  73.     "sscroll",        /* smooth scrolling flag */
  74.     "status",        /* returns the status of the last command */
  75.     "sterm",        /* search terminator character */
  76.     "target",        /* target for line moves */
  77.     "time",            /* date and time */
  78.     "tpause",        /* length to pause for paren matching */
  79.     "version",        /* current version number */
  80.     "wline",        /* # of lines in current window */
  81.     "wraphook",        /* wrap word execution hook */
  82.     "writehook",        /* write file hook */
  83.     "xpos",         /* current mouse X position */
  84.     "ypos"             /* current mouse Y position */
  85. };
  86.  
  87. #define NEVARS    sizeof(envars) / sizeof(char *)
  88.  
  89. /*    and its preprocesor definitions     */
  90.  
  91. #define EVACOUNT    0
  92. #define EVASAVE     1
  93. #define    EVBUFHOOK    2
  94. #define EVCBFLAGS    3
  95. #define EVCBUFNAME    4
  96. #define EVCFNAME    5
  97. #define EVCMDHK     6
  98. #define EVCMODE     7
  99. #define EVCURCHAR    8
  100. #define EVCURCOL    9
  101. #define EVCURLINE    10
  102. #define EVCURWIDTH    11
  103. #define EVCWLINE    12
  104. #define EVDEBUG         13
  105. #define EVDIAGFLAG      14
  106. #define EVDISCMD        15
  107. #define EVDISINP        16
  108. #define EVEXBHOOK       17
  109. #define EVFCOL        18
  110. #define EVFILLCOL    19
  111. #define EVFLICKER    20
  112. #define EVGFLAGS    21
  113. #define EVGMODE     22
  114. #define    EVHARDTAB    23
  115. #define EVHJUMP        24
  116. #define EVHSCROLL    25
  117. #define EVKILL          26
  118. #define EVLANG          27
  119. #define EVLASTKEY       28
  120. #define EVLASTMESG      29
  121. #define EVLINE          30
  122. #define EVLWIDTH        31
  123. #define EVMATCH         32
  124. #define EVMODEFLAG      33
  125. #define EVMSFLAG        34
  126. #define    EVOCRYPT    35
  127. #define EVPAGELEN       36
  128. #define EVPALETTE       37
  129. #define EVPENDING       38
  130. #define EVPROGNAME      39
  131. #define EVRAM           40
  132. #define EVREADHK        41
  133. #define    EVREGION    42
  134. #define EVREPLACE       43
  135. #define EVRVAL          44
  136. #define EVSEARCH        45
  137. #define EVSEED          46
  138. #define EVSOFTTAB    47
  139. #define EVSRES          48
  140. #define EVSSAVE         49
  141. #define EVSSCROLL    50
  142. #define EVSTATUS    51
  143. #define EVSTERM     52
  144. #define EVTARGET    53
  145. #define EVTIME        54
  146. #define EVTPAUSE    55
  147. #define EVVERSION    56
  148. #define EVWLINE     57
  149. #define EVWRAPHK    58
  150. #define    EVWRITEHK    59
  151. #define EVXPOS        60
  152. #define EVYPOS        61
  153.  
  154. /*    list of recognized user functions    */
  155.  
  156. typedef struct UFUNC {
  157.     char *f_name;  /* name of function */
  158.     int f_type;    /* 1 = monamic, 2 = dynamic */
  159. } UFUNC;
  160.  
  161. #define NILNAMIC    0
  162. #define MONAMIC     1
  163. #define DYNAMIC     2
  164. #define TRINAMIC    3
  165.  
  166. NOSHARE UFUNC funcs[] = {
  167.     "abs", MONAMIC,     /* absolute value of a number */
  168.     "add", DYNAMIC,        /* add two numbers together */
  169.     "and", DYNAMIC,     /* logical and */
  170.     "asc", MONAMIC,     /* char to integer conversion */
  171.     "ban", DYNAMIC,     /* bitwise and     9-10-87  jwm */
  172.     "bin", MONAMIC,     /* loopup what function name is bound to a key */
  173.     "bno", MONAMIC,     /* bitwise not */
  174.     "bor", DYNAMIC,     /* bitwise or     9-10-87  jwm */
  175.     "bxo", DYNAMIC,     /* bitwise xor     9-10-87  jwm */
  176.     "cat", DYNAMIC,     /* concatinate string */
  177.     "chr", MONAMIC,     /* integer to char conversion */
  178.     "div", DYNAMIC,     /* division */
  179.     "env", MONAMIC,     /* retrieve a system environment var */
  180.     "equ", DYNAMIC,     /* logical equality check */
  181.     "exi", MONAMIC,     /* check if a file exists */
  182.     "fin", MONAMIC,     /* look for a file on the path... */
  183.     "gre", DYNAMIC,     /* logical greater than */
  184.     "gtc", NILNAMIC,    /* get 1 emacs command */
  185.     "gtk", NILNAMIC,    /* get 1 charater */
  186.     "ind", MONAMIC,     /* evaluate indirect value */
  187.     "lef", DYNAMIC,     /* left string(string, len) */
  188.     "len", MONAMIC,     /* string length */
  189.     "les", DYNAMIC,     /* logical less than */
  190.     "low", MONAMIC,     /* lower case string */
  191.     "mid", TRINAMIC,    /* mid string(string, pos, len) */
  192.     "mod", DYNAMIC,     /* mod */
  193.     "neg", MONAMIC,     /* negate */
  194.     "not", MONAMIC,     /* logical not */
  195.     "or",  DYNAMIC,     /* logical or */
  196.     "rig", DYNAMIC,     /* right string(string, pos) */
  197.     "rnd", MONAMIC,     /* get a random number */
  198.     "seq", DYNAMIC,     /* string logical equality check */
  199.     "sgr", DYNAMIC,     /* string logical greater than */
  200.     "sin", DYNAMIC,     /* find the index of one string in another */
  201.     "sle", DYNAMIC,     /* string logical less than */
  202.     "slo", DYNAMIC,        /* set lower to upper char translation */
  203.     "sub", DYNAMIC,     /* subtraction */
  204.     "sup", DYNAMIC,        /* set upper to lower char translation */
  205.     "tim", DYNAMIC,     /* multiplication */
  206.     "tri", MONAMIC,        /* trim whitespace off the end of a string */
  207.     "tru", MONAMIC,     /* Truth of the universe logical test */
  208.     "upp", MONAMIC,     /* uppercase string */
  209.     "xla", TRINAMIC        /* XLATE character string translation */
  210. };
  211.  
  212. #define NFUNCS    sizeof(funcs) / sizeof(UFUNC)
  213.  
  214. /*    and its preprocesor definitions     */
  215.  
  216. #define UFABS        0
  217. #define UFADD        1
  218. #define UFAND        2
  219. #define UFASCII     3
  220. #define UFBAND        4
  221. #define UFBIND        5
  222. #define UFBNOT        6
  223. #define UFBOR        7
  224. #define UFBXOR        8
  225. #define UFCAT        9
  226. #define UFCHR        10
  227. #define UFDIV        11
  228. #define UFENV        12
  229. #define UFEQUAL     13
  230. #define UFEXIST     14
  231. #define UFFIND        15
  232. #define UFGREATER    16
  233. #define UFGTCMD     17
  234. #define UFGTKEY     18
  235. #define UFIND        19
  236. #define UFLEFT        20
  237. #define UFLENGTH    21
  238. #define UFLESS        22
  239. #define UFLOWER     23
  240. #define UFMID        24
  241. #define UFMOD        25
  242. #define UFNEG        26
  243. #define UFNOT        27
  244. #define UFOR        28
  245. #define UFRIGHT     29
  246. #define UFRND        30
  247. #define UFSEQUAL    31
  248. #define UFSGREAT    32
  249. #define UFSINDEX    33
  250. #define UFSLESS     34
  251. #define    UFSLOWER    35
  252. #define UFSUB        36
  253. #define    UFSUPPER    37
  254. #define UFTIMES     38
  255. #define    UFTRIM        39
  256. #define UFTRUTH     40
  257. #define UFUPPER     41
  258. #define UFXLATE     42
  259.